/**
 * @author Vitor Franco do Carmo (vitor.carmo@cpmbraxis.com)
 * @since 30/07/2013
 *
 */
package br.com.vfcfw.commons.domain.entity;

import javax.persistence.Column;
import javax.persistence.MappedSuperclass;
import javax.persistence.Version;

/**
 * Classe base para todas as entidades persistentes que serão versionadas para controle de concorrência.
 * 
 * @author Vitor Franco do Carmo (vitor.carmo@cpmbraxis.com)
 * @since 30/07/2013
 * 
 */
@MappedSuperclass
public abstract class BaseVersionedEntity extends BaseEntity {

    /** */
    private static final long serialVersionUID = -8988633201655307353L;

    @Version
    @Column(name = "NUM_VERSAO")
    private Long versao;

    /**
     * Construtor da classe.
     */
    public BaseVersionedEntity() {

        super();
    }

    /**
     * Retorna o valor do atributo versao.
     * 
     * @return Valor do atributo versao.
     */
    public Long getVersao() {

        return versao;
    }

    /**
     * Especifica o valor do atributo versao.
     * 
     * @param versao Long do versao a ser setado.
     */
    public void setVersao(Long versao) {

        this.versao = versao;
    }

}
